package com.sunrise.configuracoes.repositorio;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.sunrise.configuracoes.repositorio.iface.StatusNotificacaoDao;
import com.sunrise.generico.acesso.DaoNegocioService;
import com.sunrise.generico.entidade.StatusNotificacao;

@Repository
public class StatusNotificacaoDaoImpl extends DaoNegocioService<StatusNotificacao> implements
		StatusNotificacaoDao {

	public List<StatusNotificacao> listarOrdenado() {
		return listar(StatusNotificacao.class);
	}

	public StatusNotificacao getById(Long id) {
		return getById(id, StatusNotificacao.class);
	}

	@Override
	@SuppressWarnings("unchecked")
	public List<StatusNotificacao> listarPorUsuario(Long id) {
			Criteria crit = getSession().createCriteria(StatusNotificacao.class);
			crit.add(Restrictions.eq("usuario.id", id));
			crit.createAlias("notificacao", "not");
			crit.add(Restrictions.eq("not.ativo", Boolean.TRUE));
			crit.addOrder(Order.desc("not.dataNotificacao"));
			return crit.list();
	}

}
